<!DOCTYPE html>
<html lang='en'>

<head>
    <meta charset='UTF-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script src='./vue.global.js'></script>
</head>

<body>
    <div id='app'></div>
    <script>
        const app = Vue.createApp({
            custom: 'hello!',
            mounted(){
                console.log("app mounted",this.$options.custom);
            }
        })

        // toVal代表外来custom (来自mixin)
        // from代表自己的custom
        app.config.optionMergeStrategies.custom = (toVal, fromVal) => {
            console.log(fromVal, toVal)
            // => "goodbye!", undefined
            // => "hello", "goodbye!"
            return fromVal || toVal
        }

        app.mixin({
            custom: 'goodbye!',
            created() {
                console.log(this.$options.custom) // => "hello!"
            }
        })

        app.mount("#app")
    </script>
</body>

</html>